* {
    margin: 0;
    padding: 0;
  }
  body {
    background-color: #78e98f;
  }
  .container {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 238px;
    /* background-color: white; */
  }
  .ball {
    background-color: white;
    border: 8px solid;
    width: 100px;
    height: 100px;
    border-radius: 50%;
    display:inline-block;
    position: relative;
  }
  .face {
    width: 70px;
    height: 30px;
    position: absolute;
    right: 0;
    top: 30px;
  }
  /* 伪元素选择器 
    css 声明，像html一样来用，不需要在html里面声明
  一定要有content属性 忍者 */
  /* 元素内容开始之前 */
  .face::after, .face::before {
    content: "";
    position: absolute;
    width: 18px;
    height: 8px;
    background-color: #badc58;
    top: 20px;
    border-radius: 50%;
  }
  .face::before {
    right: -8px;
  }
  
  /* 元素内容结束之后 */
  .face::after {
    left: -5px;
  }
  .eye {
    width: 15px;
    height: 14px;
    border-radius: 50%;
    border-bottom: 5px solid;
    position: absolute;
  }
  .eye-l {
    left: 10px;
  }
  .eye-r {
    right: 5px;
  }
  .eye-r-p {
    border-top: 5px solid;
    border-bottom: 0px solid;
  }
  .mouth {
    width: 30px;
    height: 14px;
    border-radius: 50%;
    border-bottom: 5px solid;
    position: absolute;
    bottom: -5px;
    left: 0;
    right: 0;
    transform: translate(3px);
    margin:auto; /*平分左右的margin*/
  }
  
  /* 动画 */
  #l-ball {
    animation: close 4s ease infinite;
    position:relative;
    z-index: 100;
  }
  @keyframes close {
    0% {
      transform: translate(0);
    }
    20% {
      transform: translate(20px);
    }
    35% {
      transform: translate(20px);
    }
    55% {
      transform: translate(0px);
    }
    100% {
      transform: translate(0px);
    }
  }
  .face-l {
    animation: face 4s ease infinite;
  }
  @keyframes face{
    0% {
      transform: translate(0) rotate(0);
    }
    10% {
      transform: translate(0) rotate(0);
    }
    20% {
      transform: translate(5px) rotate(-2deg);
    }
    28% {
      transform: translate(0) rotate(0);
    }
    35% {
      transform: translate(5px) rotate(-2deg);
    }
    50% {
      transform: translate(0) rotate(0);
    }
    100% {
      transform: translate(0) rotate(0);
    }
  }
  #r-ball {
    animation: kiss 4s ease infinite;
    position:relative;
  }
  @keyframes kiss {
    40% {
      transform: translate(0);
    }
    50% {
      transform: translate(30px) rotate(20deg);
    }
    60% {
      transform: translate(-33px);
    }
    67% {
      transform: translate(-33px);
    }
    77%{
      transform: translate(0px);
    }
  }
  
  .mouth-r {
    animation:mouth-m 4s ease infinite;
  }
  .kiss-m {
    position: absolute;
    left: 20px;
    top: 22px;
    opacity: 0;
    animation: kiss-m 4s ease infinite;
  }
  .kiss {
    width: 13px;
    height: 10px;
    background-color: white;
    border-left:5px solid;
    border-radius: 50%;
  }
  @keyframes kiss-m {
    0% {
      opacity: 0;
    }
    55% {
      opacity: 0;
    }
    66% {
      opacity: 1;
    }
    66.1% {
      opacity: 0;
    }
  }
  
  @keyframes mouth-m {
    0% {
      opacity: 1;
    }
    54.9% {
      opacity: 1;
    }
    55% {
      opacity: 0;
    }
    66% {
      opacity: 0;
    }
    66.1% {
      opacity: 1;
    }
  }
  
  .face-r {
    left: 0;
    top: 37px;
  }